// 引入 createStore
//    最新的 redux 推荐我们使用 @reduxjs/toolkit （RTK）
import { createStore } from "redux";
// 引入 redux-devtools 插件包中的一个函数
import { composeWithDevTools } from '@redux-devtools/extension'

// 提供一份初始化的 state 数据
const initialState = {
  count: 0,
};

// 提供一个 reducer 纯函数
function reducer(state = initialState, action: any) {
  // 基于 action.type 的不同，去返回一份全新的 state 数据
  switch (action.type) {
    case "increment":
      // state.count++
      // return state
      return {
        ...state,
        count: state.count + 1,
      };
    case "decremenet":
      return {
        ...state,
        count: state.count - 1,
      };
    default:
      return state;
  }
}

// 创建仓库
const store = createStore(
  reducer,
  // window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__()
  composeWithDevTools()
);

// 最后导出这个 store 对象
export default store;
